From d3b580977d71e1bf93279301d90790cf3916d2a3 Mon Sep 17 00:00:00 2001 From: Kunal Mehta Date: Fri, 9 Feb 2018 22:21:19 -0800 Subject: [PATCH] registration: Simplify extracting path based globals The code for ParserTestFiles and ServiceWiringFiles was identical, so unify it into one function. For most extensions, this should save two unnecessary function calls as a bonus. Change-Id: If5ed189f97b7d3b9cd7b550f3ad2e90abe30005d --- includes/registration/ExtensionProcessor.php | 32 ++++++++++--------- .../registration/ExtensionProcessorTest.php | 2 +- 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/includes/registration/ExtensionProcessor.php b/includes/registration/ExtensionProcessor.php index fe617c54bb..0d0a6e4761 100644 --- a/includes/registration/ExtensionProcessor.php +++ b/includes/registration/ExtensionProcessor.php @@ -197,8 +197,20 @@ class ExtensionProcessor implements Processor { $this->extractMessagesDirs( $dir, $info ); $this->extractNamespaces( $info ); $this->extractResourceLoaderModules( $dir, $info ); - $this->extractServiceWiringFiles( $dir, $info ); - $this->extractParserTestFiles( $dir, $info ); + if ( isset( $info['ServiceWiringFiles'] ) ) { + $this->extractPathBasedGlobal( + 'wgServiceWiringFiles', + $dir, + $info['ServiceWiringFiles'] + ); + } + if ( isset( $info['ParserTestFiles'] ) ) { + $this->extractPathBasedGlobal( + 'wgParserTestFiles', + $dir, + $info['ParserTestFiles'] + ); + } $name = $this->extractCredits( $path, $info ); if ( isset( $info['callback'] ) ) { $this->callbacks[$name] = $info['callback']; @@ -499,19 +511,9 @@ class ExtensionProcessor implements Processor { $this->globals[$key] = $value; } - protected function extractServiceWiringFiles( $dir, array $info ) { - if ( isset( $info['ServiceWiringFiles'] ) ) { - foreach ( $info['ServiceWiringFiles'] as $path ) { - $this->globals['wgServiceWiringFiles'][] = "$dir/$path"; - } - } - } - - protected function extractParserTestFiles( $dir, array $info ) { - if ( isset( $info['ParserTestFiles'] ) ) { - foreach ( $info['ParserTestFiles'] as $path ) { - $this->globals['wgParserTestFiles'][] = "$dir/$path"; - } + protected function extractPathBasedGlobal( $global, $dir, $paths ) { + foreach ( $paths as $path ) { + $this->globals[$global][] = "$dir/$path"; } } diff --git a/tests/phpunit/includes/registration/ExtensionProcessorTest.php b/tests/phpunit/includes/registration/ExtensionProcessorTest.php index ef19b2f9d7..d9e091dc8d 100644 --- a/tests/phpunit/includes/registration/ExtensionProcessorTest.php +++ b/tests/phpunit/includes/registration/ExtensionProcessorTest.php @@ -647,7 +647,7 @@ class ExtensionProcessorTest extends MediaWikiTestCase { ); } - public function testExtractSimplePathBased() { + public function testExtractPathBasedGlobal() { $processor = new ExtensionProcessor(); $processor->extractInfo( $this->dir, -- 2.20.1